//
// Created by jinling on 2025/6/25.
//

#pragma  once
#include  "FileLog.h"
#include"Singleton.h"
#include<memory>
#include <unordered_map>
#include  <string>
#include <mutex>
#include <sstream>

namespace tmms
{
    namespace base
    {

        
        class FileLogMgr : public NonCopyable //单列模式
        {
        public:
            FileLogMgr() =default;
            ~FileLogMgr() = default;

            void OnCheck();//检测的任务 到时候  就是用定时任务不停的检测 =====设置定时任务来不断调用oncheck
            FileLogPter GetFileLog(const std::string &file_name); //从池中中获得文件输入对象 filelog
            void RemoveFileLog(const FileLogPter &log);
            void RotateDays(const FileLogPter &file);
            void RotateHours(const FileLogPter &file);
        private:
            std::pmr::unordered_map<std::string,FileLogPter> logs_;
            std::mutex lock_;
            int last_day_{-1};
            int last_hour_{-1};
            int last_year_{-1};
            int last_month_{-1};
        };

    }
}


#define sFileMgr  tmms::base::Singleton<tmms::base::FileLogMgr>::Instance() //用的时候 直接sFileMgr就行了
